package lincen.javame.game.handheldgame.tetris;

import lincen.javame.game.tetris.Matrix;

/**
 * 加分策略
 * @author 林岑
 */
public class AddScoreStratege {

	/**
	 * 获得下一等级升级所需得分
	 */
	public int getNextLevelScoreShould(int level) {
		switch (level) {
		case 1:
			return 2000;
		case 2:
			return 5000;
		case 3:
			return 9000;
		case 4:
			return 20000;
		case 5:
			return 50000;
		default:
			return 100000;
		}
	}

	/**
	 * 根据消除的行数增加得分
	 * 
	 * 增分规则: 
	 * 1行: 100   分 + 当前堆中的点数 / 3
	 * 2行: 200   分 + 当前堆中的点数
	 * 3行: 500   分 + 当前堆中的点数  * 2
	 * 4行: 1000分 + 当前堆中的点数  * 3
	 * 
	 * @param lineNum 消除的行数
	 * @param t 俄罗斯方块核心程序
	 */
	public int getScore(int lineNum, Matrix t) {
		switch (lineNum) {
		case 0:
			return 0;
		case 1:
			return 100 + t.getStackSize() / 3;
		case 2:
			return 200 + t.getStackSize();
		case 3:
			return 500 + t.getStackSize() * 2;
		default:
			return 1000 + t.getStackSize() * 3;
		}
	}

}
